Computers are used in a number of different video graphics applications that produce images on a display. When images are produced on a display, the intensity of the different pixels that make up the image can effect the quality of the image as perceived by a viewer. The intensity of pixels on the display is related to the voltage provided to the display for generation of the pixels. The formula that determines the intensity of a pixel on a display is Intensity=(V+), where V is voltage, is black level adjust parameter, and is the associated gamma value. The black level parameter corresponds to the brightness adjustment for a particular display device.
Problems arise because the gamma and black level adjust used in the equation above are different for different computer monitors, television sets, flat panels, other types of displays, and printers. Typically, the gamma of a computer monitor is approximately 2.5. This makes the intensity equation a non-linear relationship such that if the gamma is not corrected for, mid-tone values of an image will have a lower intensity than would be proportionately correct.
Different computer platforms have implemented various types of gamma correction. As such, applications intended for one computer platform may perform some type of gamma correction that is inappropriate if utilized on another platform. For example, SGI (Silicon Graphics) machines employ a hardware gamma correction of approximately 1.4, whereas Macintosh machines employ gamma correction using a value of approximately 1.7. In contrast, typical compatible personal computers (PCs) have no default gamma correction built into the display subsystem.
Video and 2D graphics are typically received with a gamma of ˜2.3 pre-applied. The data is received with the assumption that the display subsystem applies no further correction and that the display device being utilized is a CRT. However, 3D graphics are often rendered to a linear gamma space with the assumption that the display subsystem will adjust it.
Processing data which is already gamma corrected can lead to complications when the processing system must compensate for the already present gamma correction. Ideally, the image processors would be able to process the images in linear space and allow the display system to provide the proper gamma correction for whatever display device is being utilized. Ideally, such systems would be able to account for multiple windows on a single display where each window may have a different gamma value associated with it because of the image data it is displaying.
Therefore, a need exists for a method and apparatus that allows for linear processing of image data which is then gamma corrected prior to display, where the gamma correction is capable of dealing with a number of different gamma values.